package com.esunny.resourcevisualization.dao;

import com.esunny.resourcevisualization.domain.entity.ResourceTypeField;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @version 1.0.0.0
 * @InterfaceName ResourceTypeFieldDao
 * @Description 资源类别字段表操作
 * @Author baochencong
 * @Date 2020/9/28 10:46
 */
@Mapper
public interface ResourceTypeFieldDao {

    /**
     * 通过资源类别英文名删除资源类别字段
     *
     * @param name 资源类别英文名
     */
    void deleteResourceTypeFieldByName(String name);

    /**
     * 添加资源类别字段
     *
     * @param resourceTypeField 资源类别字段信息
     * @return 添加结果
     */
    boolean addResourceTypeField(ResourceTypeField resourceTypeField);

    /**
     * 通过资源类别字段id删除该资源字段
     *
     * @param fieldId 资源类别字段id
     */
    void deleteResourceTypeFieldByFieldId(int fieldId);

    /**
     * 通过资源类别字段id修改资源类别字段信息
     *
     * @param resourceTypeField 资源类别字段信息
     * @return 修改结果
     */
    boolean updateResourceTyprFieldByFieldId(ResourceTypeField resourceTypeField);

    /**
     * 通过资源类别字段id获取资源类别字段信息
     *
     * @param fieldId 资源类别字段id
     * @return 资源类别字段信息
     */
    ResourceTypeField getResourceTypeFieldId(int fieldId);

    /**
     * 通过资源类别英文名获取资源类别字段列表信息
     *
     * @param name 资源类别英文名
     * @return 资源类别字段列表
     */
    List<ResourceTypeField> getResourceTypeFieldByName(String name);

    /**
     * 通过资源类别英文名和资源类别字段英文名1获取资源类别字段信息
     *
     * @param name      资源类别英文名
     * @param fieldName 资源类别字段英文名
     * @return 资源类别字段信息
     */
    ResourceTypeField getResourceTypeFieldByNameAndFieldName(String name, String fieldName);

    /**
     * 通过资源类别英文名和资源类别字段中文名1获取资源类别字段信息
     *
     * @param name       资源类别英文名
     * @param fieldTitle 资源类别字段中文名
     * @return 资源类别字段
     */
    ResourceTypeField getResourceTypeFieldByNameAndFieldTitle(String name, String fieldTitle);
}
